Host processor systems may store and retrieve data using storage devices containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek, which are incorporated herein by reference. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels of the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical volumes. Different sections of the logical volumes may or may not correspond to the actual disk drives.
An individual storage system may contain multiple tiers of storage, each of which may have different performance characteristics and operating costs. For example, one tier may be comprised of Flash drives, another of Fibre Channel drives and another of SATA drives. The character of the storage request access loads that these each drive type is best suited for may vary greatly. In order to efficiently exploit the different capabilities provided by these drive types, the drive type to which a each region of logical storage is mapped would be selected so that the resulting host access workload for the drives would effectively exploit that drives capabilities (e.g., SATA drives are effective at handling workloads with low access density and tolerance for higher response times, while Flash drives are effective at handling workloads with high access density and low response time requirements. Fibre Channel drives effective at handling workloads that do not fall into either of these extremes.
The use of a multi-tiered configuration can in principal be optimized to a greater degree when the size of the regions that optimal tier selection decisions are made for is smaller. However, the selection of a small region size for tier selection may result in the need to determine optimal placement for significant numbers (billions) of regions. Thus, it may be impractical to use techniques that completely analyze all of the data before identifying the candidates for promotion and demotion between the tiers. Such techniques do not necessarily scale well as amount of storage (and number of storage portions) increases. Also, such techniques may not react quickly enough to work load change due their sequential mode of operation.
Accordingly, it is desirable to be able to provide continuous data movement between the tiers in parallel (and possibly using multiple CPUs) while having minimal impact to the system as data is analyzed and moved between the tiers.